﻿using System;
using System.Collections.Generic;
using Microsoft.Xna.Framework;

namespace Terraria.ModLoader
{
	// Token: 0x020001E3 RID: 483
	public class ModMountData
	{
		// Token: 0x17000179 RID: 377
		// (get) Token: 0x06001442 RID: 5186 RVA: 0x000102D7 File Offset: 0x0000E4D7
		// (set) Token: 0x06001443 RID: 5187 RVA: 0x000102DF File Offset: 0x0000E4DF
		public Mount.MountData mountData { get; internal set; }

		// Token: 0x1700017A RID: 378
		// (get) Token: 0x06001444 RID: 5188 RVA: 0x000102E8 File Offset: 0x0000E4E8
		// (set) Token: 0x06001445 RID: 5189 RVA: 0x000102F0 File Offset: 0x0000E4F0
		public Mod mod { get; internal set; }

		// Token: 0x1700017B RID: 379
		// (get) Token: 0x06001446 RID: 5190 RVA: 0x000102F9 File Offset: 0x0000E4F9
		// (set) Token: 0x06001447 RID: 5191 RVA: 0x00010301 File Offset: 0x0000E501
		public int Type { get; internal set; }

		// Token: 0x1700017C RID: 380
		// (get) Token: 0x06001448 RID: 5192 RVA: 0x0001030A File Offset: 0x0000E50A
		// (set) Token: 0x06001449 RID: 5193 RVA: 0x00010312 File Offset: 0x0000E512
		public string Name { get; internal set; }

		// Token: 0x0600144A RID: 5194 RVA: 0x0001031B File Offset: 0x0000E51B
		public ModMountData()
		{
			this.mountData = new Mount.MountData();
		}

		// Token: 0x0600144B RID: 5195 RVA: 0x0001032E File Offset: 0x0000E52E
		public virtual bool Autoload(ref string name, ref string texture, IDictionary<MountTextureType, string> extraTextures)
		{
			return this.mod.Properties.Autoload;
		}

		// Token: 0x0600144C RID: 5196 RVA: 0x00412EB8 File Offset: 0x004110B8
		internal void SetupMount(Mount.MountData mountData)
		{
			ModMountData modMountData = (ModMountData)base.MemberwiseClone();
			modMountData.mountData = mountData;
			mountData.modMountData = modMountData;
			modMountData.mod = this.mod;
			modMountData.SetDefaults();
		}

		// Token: 0x0600144D RID: 5197 RVA: 0x00006B58 File Offset: 0x00004D58
		public virtual void SetDefaults()
		{
		}

		// Token: 0x0600144E RID: 5198 RVA: 0x00006B58 File Offset: 0x00004D58
		public virtual void JumpHeight(ref int jumpHeight, float xVelocity)
		{
		}

		// Token: 0x0600144F RID: 5199 RVA: 0x00006B58 File Offset: 0x00004D58
		public virtual void JumpSpeed(ref float jumpSeed, float xVelocity)
		{
		}

		// Token: 0x06001450 RID: 5200 RVA: 0x00006B58 File Offset: 0x00004D58
		public virtual void UpdateEffects(Player player)
		{
		}

		// Token: 0x06001451 RID: 5201 RVA: 0x00008CF7 File Offset: 0x00006EF7
		public virtual bool UpdateFrame(Player mountedPlayer, int state, Vector2 velocity)
		{
			return true;
		}

		// Token: 0x06001452 RID: 5202 RVA: 0x0000ADF8 File Offset: 0x00008FF8
		internal virtual bool CustomBodyFrame()
		{
			return false;
		}

		// Token: 0x06001453 RID: 5203 RVA: 0x00006B58 File Offset: 0x00004D58
		public virtual void UseAbility(Player player, Vector2 mousePosition, bool toggleOn)
		{
		}

		// Token: 0x06001454 RID: 5204 RVA: 0x00006B58 File Offset: 0x00004D58
		public virtual void AimAbility(Player player, Vector2 mousePosition)
		{
		}

		// Token: 0x040014AC RID: 5292
		internal string texture;
	}
}
